<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script type="module">
	// 基本用法
	// {}内称为绑定数据：绑定了数据a,b,c
	// 如果绑定了未导出的数据，会报异常
	// import {a,b,c} from "./module/mo1.js";
	// console.log(a,b,c);// 1 2 3
	
	
	// 2
	// import {userName,setUserName} from "./module/mo2.js";
	// // 正常读取
	// console.log(userName);// zhangsan
	// // 不允许直接修改
	// // userName = "wangwu";
	// // 可以通过绑定函数对数据进行修改。
	// setUserName("wangwu");
	// console.log(userName);// wangwu
	
	// 3
	// 注意：import xx from xxx,不要写到代码块中，函数体中
	// {
	// 	// 代码块
	// 	import {userName} from "./module/mo.js";
	// 	import {userName as mo3UserName} from "./module/mo3.js";
	// 	console.log(userName,mo3UserName);// lisi mo3.js
	// }
	//
	//
	// function fn(){
	// 	// 函数体
	// 	import {userName} from "./module/mo.js";
	// 	import {userName as mo3UserName} from "./module/mo3.js";
	// 	console.log(userName,mo3UserName);// lisi mo3.js
	// }
	// fn();
	// import {userName} from "./module/mo.js";
	// import {userName as mo3UserName} from "./module/mo3.js";
	// console.log(userName,mo3UserName);// lisi mo3.js
	
	
	// 4
	// const fn = function(){
	// 	console.log("fn");
	// }
	// import {a,b,c,userName,fn2} from "./module/mo4.js";
	//
	// console.log(a,b,c,userName);// 1 2 100 zhangsan
	// fn();// fn
	// fn2();// mo4->fn
	
	
	
	// 5
	// import * as mo5 from "./module/mo5.js";
	//
	// console.log(mo5.a);// 1
	// console.log(mo5.b);// 2
	// console.log(mo5.c);// 3
	// console.log(mo5.d);// 4
	// console.log(mo5.e);// 5
	// console.log(mo5.f);// 6
	
	// 6
	// 引入默认导出的数据不需要加括号，名字自定义
	// 不合法
	// import {a} from "./module/mo6.js";
	// import  mo6 from "./module/mo6.js";
	//
	// console.log(mo6.a,mo6.b);// 1 2
	
	
	// 7
	// import suiBian,{a,userName} from "./module/mo7.js";
	//
	// console.log(a,userName);// 1 zhangsan
	// console.log(suiBian);// {a: 1, userName: 'zhangsan', b: 2, c: 3}

	
	// 8
	// import mo8 from "./module/mo8.js";
	// import suiBian,{userName} from "./module/mo.js";
	// // {str: 'mo8.js', mo: {…}} 'lisi' true
	// console.log(mo8,userName,suiBian === mo8.mo);
	
	// 9
	
	// ??: 如果左侧值为undefined或null,结果为？？右侧值，否则为？？左侧值
	// localStorage.setItem("userName","wangwu");
	// const userName = localStorage.getItem("userName")?localStorage.getItem("userName"):"lisi";
	// const userName = localStorage.getItem("userName")??"lisi";
	// console.log(userName);
	
	// 1- import xxx from xxxx 不允许写在代码块，函数体
	// 2- from 右侧值只允许是字符串
	// const str = "./module/mo9.js"
	// import suiBian,{a} from str;// 不合法
	// console.log(a,suiBian);
	
	// 可以通过动态引入解决以上问题
	// console.log(import("./module/mo9.js"));
	// import("./module/mo9.js").then(value=>{
	// 	console.log(value.a);// 1
	// 	console.log(value.default.userName);// zhangsan
	// 	console.log(value.default.age);// 12
	// })
	
	
	// const str = "./module/mo9.js"
	// {
	// 	// 代码块
	// 	const mo9 = await import(str);
	// 	console.log(mo9.a);
	// 	console.log(mo9.default.userName);
	// 	console.log(mo9.default.age);
	// }
	// async function fn(){
	// 	//  函数体
	// 	const mo9 = await import(str);
	// 	console.log(mo9.a);
	// 	console.log(mo9.default.userName);
	// 	console.log(mo9.default.age);
	// }
	//
	
	
	// 10
	// import "./module/mo10.js";
	// const str = "mo10.js";
	// console.log(str.last())
	
	
	import axios,{b,c} from "./module/axios.js";
	
	console.log(axios,b,c)

	
</script>
</html>